package com.george.common.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.tika.Tika;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @title: FileTypeUtils
 * @description: 文件类型检验工具类
 * @author: George
 * @date: 2023/7/13 9:29
 */
@Slf4j
public class FileTypeUtils {
    private static final Tika TIKA = new Tika();

    /**
     * 检查文件是否是图片类型
     *
     * @param file
     * @return boolean
     * @author George
     * @date 2023/7/13 9:48
     */

    public static boolean isImageFile(MultipartFile file) {
        try {
            String fileType = TIKA.detect(file.getInputStream());
            log.info("FileTypeUtils.isImageFile(),文件名：{},文件类型：{}", file.getOriginalFilename(),fileType);
            return fileType != null && fileType.startsWith("image");
        } catch (IOException ex) {
            ex.printStackTrace();
            log.error("检查文件是否图片类型发生异常，文件名：{}，异常信息：{}",file.getOriginalFilename(),ex.getMessage());
            return false;
        }
    }
}
